package main

import (
	"fmt"
	"strconv"
	"time"
)
func init(){
	fmt.Println("main函数的init方法执行了")
}

// 设置调用别的模块文件的init方法
func main() {
	/*//定义map变量：
	var a map[int]string
	//只声明map内存是没有分配空间
	//必须通过make函数进行初始化，才会分配空间：
	a = make(map[int]string,4) //map可以存放10个键值对
	//将键值对存入map中：
	a[20095452] = "张三"
	a[200953871] = "李四"
	a[20097291] = "王五"
	a[20095387] = "朱六"
	a[20096699] = "张三"
	//输出集合
	fmt.Println(a)
*/
 /*  var t = Man{Name:"zl",Age:13,Addr:"天津"}
   t.test1(5)*/

	go test() // 开启一个协程
	for i := 1;i <= 10;i++ {
		fmt.Println("hello msb + " + strconv.Itoa(i))
		//阻塞一秒：
		time.Sleep(time.Second)
	}

}

func test(){
	for i := 1;i <= 1000;i++ {
		fmt.Println("hello golang + " + strconv.Itoa(i))
		//阻塞一秒：
		time.Sleep(time.Second)
	}
}

type Man struct {
	Name string
	Age  int
	Addr string
}

func (m Man) test() int {
	return m.Age
}

func (m Man) test1(sub int){
   fmt.Println(m.test()+sub)
}

// new关键字的使用
func newTest(){
	// 申请一个num为int的内存空间
	var num  = new(int)
	fmt.Println(*num)
	// 为num的内存空间赋值
	*num=10
	// 取出num对应的内存值
	fmt.Println(*num)
}
